﻿//namespace FFF.Test.Application.DomainServices.Demo
//{
//    using System.Linq;
//    using Abp.Domain.Services;
//    using Abp.Domain.Uow;
//    using Abp.EntityFrameworkCore.Uow;
//    using AutoMapper;
//    using FFF.Test.Application.Repositories.Demo;
//    using FFF.Test.DataAccess.Framework;
//    using FFF.Test.Entity.Demo;
//    using FFF.Test.Entity.Demo.Dto;

//    /// <summary>
//    /// 学生应用层服务
//    /// </summary>
//    public interface IDMStudentDomainService
//    {
//        /// <summary>
//        /// 保存学生和课程
//        /// </summary>
//        /// <param name="dMStudentInputDto">学生输入</param>
//        /// <param name="dMClassInputDto">课程的输入</param>
//        void InsertStudentAndClasses(DMStudentCreateInputDto dMStudentInputDto, DMClassCreateInputDto dMClassInputDto);

//    }

//    /// <summary>
//    /// 学生领域层服务接口
//    /// </summary>
//    internal class DMStudentDomainService : YdmAbpDomainServiceBase, IDMStudentDomainService
//    {
//        /// <summary>
//        /// 学生仓储
//        /// </summary>
//        private readonly IDMStudentRepository _dmStudentRepository;

//        /// <summary>
//        /// 课程仓储
//        /// </summary>
//        private readonly IDMClassRepository _dmClassRepository;

//        /// <summary>
//        /// Initializes a new instance of the <see cref="DMStudentDomainService"/> class.
//        /// 学生领域层操作
//        /// </summary>
//        /// <param name="dmStudentRepository">学生仓储</param>
//        /// <param name="dmClassRepository">班级仓储</param>
//        public DMStudentDomainService(IDMStudentRepository dmStudentRepository, IDMClassRepository dmClassRepository)
//        {
//            this._dmStudentRepository = dmStudentRepository;
//            this._dmClassRepository = dmClassRepository;
//        }

//        /// <summary>
//        /// 插入学生和课程 UnitOfWork表示该方法是需要用到事物
//        /// </summary>
//        /// <param name="dMStudentInputDto">学生输入</param>
//        /// <param name="dMClassInputDto">班级输入</param>
//        [UnitOfWork] // 使用事物
//        public void InsertStudentAndClasses(DMStudentCreateInputDto dMStudentInputDto, DMClassCreateInputDto dMClassInputDto)
//        {
//            // base.CurrentUnitOfWork.GetDbContext<MyDbContext>().DMStudent.ToList();
//            var classEntity = Mapper.Map<DMClassEntity>(dMClassInputDto);
//            classEntity = this._dmClassRepository.Insert(classEntity);
//            var stuEntity = Mapper.Map<DMStudentEntity>(dMStudentInputDto);
//            stuEntity.ClassGUID = classEntity.ClassGUID;
//            stuEntity = this._dmStudentRepository.Insert(stuEntity);
//            this.CurrentUnitOfWork.SaveChanges(); // 马上会返回identity的值

//        }
//    }
//}
